# 控制器中交换机代码优化

每次适配新硬件都是一个痛苦的过程,之前的代码散落各种,通常是通过搜索类似机型去找到代码位置,再去加上新硬件的配置。需要修改的位置多且容易出错,所以对交换机的代码进行了优化。

# 批量编辑交换机时,端口的默认速率

之前有4个文件写了几乎相同的配置,只有些变量存在差异。

优化后,只需维护一份配置,差异已被抹平,去除代码2000+行。

# MGMT相关

之前涉及到编辑MGMT口的文件有四个,都各自维护了一份支持MGMT功能的交换机列表,且之间存在遗漏和区别。

优化后,直接从SwitchConfig配置中遍历获取支持MGMT功能的交换机列表,且支持生成各页面所需的dom结构,以后只需配置中写好支持MGMT即可,无需再考虑每个页面的配置。

# 获取所有交换机

不少地方需要使用到所有交换机的列表,又都各自维护一份数据。

优化后直接从SwitchConfig配置中遍历获取所有交换机列表。

# 交换机端口面板弹窗

有10余处弹窗都根据型号去设置宽度。

优化后只维护一份宽度配置,所需改变宽度的弹窗会自动取配置的宽度进行设置。

# 输出适配指南

通过优化的过程,梳理出各个适配点对应的代码位置,形成一份适配文档,方便之后的适配。

# 总结

通过以上优化,移除重复、无用代码**4000+**行。

添加新硬件所需修改的文件数从 30 变成 13个,其中只有3个文件是配置相关的,剩下的都是速率相关的,在之后合入3.9.0版本后,速率也会被统一成一个配置文件,就只需配置4个文件即可完成添加新硬件。

当然优化后还是存在不足的地方,很多特性代码还未配置化,依旧分散在各处业务代码中。比较省力的办法就是碰到这类交换机特性时就优化一波。